lexer grammar GDLLexer;

options {
  language = Java;
}
@header {
package PL.prac6;
}
@rulecatch {catch (RecognitionException e) {
  throw e;}
 }
GRAPH:'graph';

NODE: 'node';
TITLE: 'title';
LABEL: 'label';
BORDERSTYLE: 'borderstyle';
TIPOSBORDER: 'solid' | 'dashed' | 'dotted';

EDGE: 'edge';
SOURCE: 'source';
TARGET: 'target';
ARROWSTYLE: 'arrowstyle';
TIPOSARROW: 'solid' | 'line' |'none';

ALLAVE: '{';
CLLAVE: '}';
DOSPUNTOS: ':';

fragment ESPACIO: (' ');
  fragment NUEVA_LINEA: ('\r\n'|'\n');
    BLANCO: (ESPACIO|'\t'|'\r'|NUEVA_LINEA) {$channel = HIDDEN;}; 
fragment BARRAS: ('//');
  LINEA_COMENTARIO: BARRAS (.)* NUEVA_LINEA {$channel = HIDDEN;};

fragment LETRA : ('a'..'z')| ('A'..'Z')|'_'; 
  IDENT: LETRA (DIGITO|LETRA)*;
  
fragment DIGITO : '0'..'9'; 
  
fragment COMILLAS: '"';
  CADENA: COMILLAS (~(COMILLAS))* COMILLAS | 'none';